NLP

Improving Question Answering over Incomplete KBs with Knowledge-Aware Reader

本文提出了基于不完整KB与文本文档的QA模型,主要有两个创新点:(1)通过图注意力机制来获取question-related knowledge进而辅助实体编码;(2)在编码文本时,设计了新型gate mechanism来融合KB实体知识。
ACL2019

paper link
code link

Introduction

在问答系统中,知识库(Knowledge Base,KB)用于辅助机器的理解。但是,KB 常常是不完整的,并且针对开放性问题,KB 不可能覆盖到所有的信息。另一方面,人们可以使用大规模的网络文本作为知识来源,并且也取得了一些成绩,但是这些工作更多的针对的是单文档,针对多文档的工作目前还相对较少。作者推测一个可能的原因就是虽然这些文本可以提供更大规模的只是覆盖,但是缺少背景知识,这么多的文档反而会引入很高的噪声。因此作者考虑将这部分整合起来,通过不完整的 KB 获取必要的和问题相关的背景知识,基于这些信息在多文档中抽取合适的信息并最终回答答案。

Model

模型主要包括:

  • graph-attention based KB reader
  • knowledge-aware text reader

SubGraph Reader(SGREADER)

SGREADER的作用是为每一个实体节点输出一个向量表征,通过编码其邻居节点和关系信息得到。主要考虑以下两个因素:(1)邻居关系与问题的相关性;(2)邻居节点是否为问题中出现过的topic entity。

Question-Relation Matching 作者首先通过一个 LSTM 处理问题,得到问题$\left\{w_{1}^{q}, w_{2}^{q}, \dots, w_{l_{q}}^{q}\right\}$的隐层状态表示$\mathbf{h}^{\mathbf{q}} \in \mathbb{R}^{l_{q} \times d_{h}}$,同时使用相同的 LSTM 得到关系$\left\{w_{1}^{r}, w_{2}^{r}, \dots, w_{l_{r}}^{r}\right\}$的隐层状态表示$\mathbf{h}^{\mathbf{r}} \in \mathbb{R}^{l_{r} \times d_{h}}$。接下来作者使用 self-attention 得到关系的语义表示:
$$
\vec{r}=\sum_{i} \alpha_{i} \vec{h}_{i}^{r}, \alpha_{i} \propto \exp \left(\vec{w}_{r} \cdot \vec{h}_{i}^{r}\right)
$$
其中$\vec{w}_{r}$是训练参数。由于问题需要和不同的关系进行匹配,而每个关系只关注到问题的其中一部分信息,因此,作者使用得到的关系表示对问题的每个token对应的隐层状态进行注意力计算,得到问题的语义表示,然后内积得到关系与问题的匹配分数:
$$
s_{r}=\vec{r} \cdot \sum_{j} \beta_{j} \vec{h}_{j}^{q}, \beta_{j} \propto \exp \left(\vec{r} \cdot \vec{h}_{j}^{q}\right)
$$

Extra Attention over Topic Entity Neighbors 同时,作者还发现topic entity的binary indicator feature非常有用,如果一个节点连接到topic entity,那么对应 KB 中的三元组将会比那些非topic entity连接的节点更有用,因此在邻居节点$(r_{i}, e_{i})$上的注意力值最终表示为:

$$
\tilde{s}_{\left(r_{i}, e_{i}\right)} \propto \exp \left(I\left[e_{i} \in \mathcal{E}_{0}\right]+s_{r_{i}}\right)
$$

Information Propagation from Neighbors 最终每个实体$e$可以通过如下方式计算出来:

$$
\overrightarrow{e^{\prime}}=\gamma^{e} \vec{e}+\left(1-\gamma^{e}\right) \sum_{\left(e_{i}, r_{i}\right) \in N_{e}} \tilde{s}_{\left(r_{i}, e_{i}\right)} \sigma\left(\mathbf{W}_{e}\left[\vec{r}_{i} ; \vec{e}_{i}\right]\right)
$$
其中$\vec{e}$, $\vec{e}_{i}$ 是预先计算的图编码,$\mathbf{W}_{\mathbf{c}} \in \mathbb{R}^{h_{d} \times 2 h_{d}}$,$N_{e}$ 是节点$e$所有的邻居节点。

$$
\gamma^{e}=g\left(\vec{e}, \sum_{\left(e_{i}, r_{i}\right) \in N_{e}} \tilde{s}_{\left(r_{i}, e_{i}\right)} \sigma\left(\mathbf{W}_{\mathbf{e}}\left[\vec{r}_{i} ; \vec{e}_{i}\right]\right)\right)
$$
其中$g(x, y)=\operatorname{sigmoid}(\mathbf{W}[x ; y]) \in(0,1)$

Knowledge-Aware Text Reader(KAREADER)

在上个模块,我们得到了每个子图实体的 embedding 表示,那么在这部分要做的就是利用这些表示增强对问题和文档的理解,从而得到最后的答案。这部分作者使用了一个现有的做阅读理解的模型。

首先是利用学习到的知识对问题进行更新表示。作者首先利用 self-attention 得到问题的原始表示$\vec{q}=\sum_{i}b_{i}\vec{h}_{i}^{q}$,然后获取问题的topic entity知识$\overrightarrow{e^{q}}=\sum_{e \in \mathcal{E}_{0}} \vec{e}^{\prime} /\left|\mathcal{E}_{0}\right|$,然后使用一个门结构将这些信息进行融合:

$$
\overrightarrow{q^{\prime}}=\gamma^{q} \vec{q}+\left(1-\gamma^{q}\right) \tanh \left(\mathbf{W}^{\mathbf{q}}\left[\vec{q}, \vec{e}^{q}, \vec{q}-\vec{e}^{q}\right]\right)
$$

其中 $\gamma^{q}=sigmoid\left(\mathbf{W}^{\mathrm{gq}}\left[\vec{q}, \vec{e}^{q}, \vec{q}-\vec{e}^{q}\right]\right)$。

得到了对问题的更新表示之后,就是使用学习到的知识对文档进行增强表示,首先对文档使用 Bi-LSTM 进行处理,作者设计了一种新的基于问题表示的门机制,该结构允许模型能够动态选择跟问题相关的输入,从而得到更好的文档语义表示。
$$
\begin{aligned} \vec{i}_{w_{i}}^{d} =\gamma^{d} \vec{e}_{w_{i}}+\left(1-\gamma^{d}\right) \vec{f}_{w_{i}}^{d}, \text { where } \gamma^{d} =\operatorname{sigmoid}\left(\mathbf{W}^{\mathrm{gd}}\left[\vec{q} \cdot \vec{e}^{\prime}_{w_{i}} ; \vec{q} \cdot \vec{f}_{w_{i}}^{d}\right]\right) \end{aligned}
$$
其中$w_{i}^{d}$是一个输入token,$\vec{f}_{w_{i}}^{d}$是其对应的token feature,$\vec{e}^{\prime}_{w_{i}}$是SGREADER学习的实体表示(如果这个token不是KB中的实体,则只有token feature)。

最后作者将从 Text Reader 中得到的信息进行融合,首先使用一个 co-attention 计算问题和 Bi-LSTM 的隐层状态的相关程度$\lambda_{i}=\vec{q^{\prime}}^{T} \vec{h}_{w_{i}}^{d}$,然后对这些隐层状态进行加权和$\vec{d}=\sum_{i} \lambda_{i} \vec{h}_{w_{i}}^{d}$,对于多个包含实体的文档,作者使用了均值池化得到最后的表示$\vec{e}_{d}=\frac{1}{\left|\mathcal{D}^{e}\right|} \sum_{d \in \mathcal{D}^{e}} \vec{d}$。

Answer Prediction

作者使用实体表征和问题向量进行匹配得到最后的输出:

$$
s^{e}=\sigma_{s}\left(\overrightarrow{q^{\prime}}^{T} \mathbf{W}_{s}\left[\overrightarrow{e^{\prime}} ; \vec{e}_{d}\right]\right)
$$

Experiments

作者在一个公开数据集 WebQSP 上进行模型的效果验证,同时为了更好的验证模型的效果,作者还人为控制了 KB 的完整程度。

Table  1:  Comparisons  with  Key-Value  Memory  Networks  and  GRAFT-Nets  under  different  KB  settings.

Ablation Study
Table  2:  Ablation  on  dev  under  the  30%  KB  setting.

Conclusion

本文提出了基于不完整KB与文本文档的QA模型,主要有两个创新点:(1)通过图注意力机制来获取question-related knowledge进而辅助实体编码;(2)在编码文本时,设计了新型gate mechanism来融合KB实体知识。